package br.senai.mb;

import java.io.Serializable;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.event.ActionEvent;

import br.senai.entidade.Pedido;
import br.senai.entidade.Sessao;
import br.senai.modelo.PedidoDAO;
import br.senai.modelo.impl.PedidoDAOImpl;

@ManagedBean(name = "pedidoMB")
@ViewScoped
public class PedidoMB extends ManagedBeanBase implements Serializable {

	private static final long serialVersionUID = 1L;

	private Pedido pedido;
	private List<Pedido> pedidos;
	
	public PedidoMB(){
		listar();
	}

	private void listar() {
		PedidoDAO pedidoDAO = (PedidoDAO) createPersistence(PedidoDAOImpl.class);
		pedidos = pedidoDAO.getLista();
	}

	public void salvar(ActionEvent event) {
		
		if (validarDados()) {
			PedidoDAO pedidoDAO = (PedidoDAO) createPersistence(PedidoDAOImpl.class);
			pedido.setUsuario(((Sessao) super.getSessionAttribute("sessaoKey")).getUsuario());
			pedidoDAO.salvar(pedido);
			listar();
			execute("modalForm.hide();");
		}
	}

	private boolean validarDados() {

		if (pedido.getNumero() == null || pedido.getNumero().isEmpty()) {
			addErrorMessage("Preencha o campo Numero", "");
			return false;
		} 
		
		return true;
	}

	public void excluir(ActionEvent event) {
		PedidoDAO pedidoDAO = (PedidoDAO) createPersistence(PedidoDAOImpl.class);
		pedidoDAO.remover(Pedido.class, pedido.getId());
	}
	
	public void novoCliente(ActionEvent event) {
		pedido = new Pedido();
	}
	
	public Pedido getPedido() {
		return pedido;
	}
	public void setPedido(Pedido pedido) {
		this.pedido = pedido;
	}
	public List<Pedido> getPedidos() {
		return pedidos;
	}
	public void setPedidos(List<Pedido> pedidos) {
		this.pedidos = pedidos;
	}
	
}
